package com.nanyang.tms.manager.forecast;

import com.nanyang.common.core.page.PageBean;
import com.nanyang.tms.domain.forecast.ForecastBaseVO;
import com.nanyang.tms.domain.forecast.ForecastDO;
import com.nanyang.tms.domain.forecast.ForecastDetailVO;
import com.nanyang.tms.domain.forecast.ForecastQuery;
import com.nanyang.tms.domain.forecast.ForecastVO;

public interface ForecastManager {
    /**
     * 列表
     * @param query
     * @return
     */
    PageBean<ForecastVO> listForecast(ForecastQuery query);

    /**
     * 详情
     * @param forecastCode
     * @return
     */
    ForecastBaseVO selectByCode(String forecastCode);


    public void updateTicketNo(String forecastCode,String ticketNo);



    public ForecastDetailVO getForecastDetail(String ticketNo);

    /**
     * 前台-详情
     * @return
     */
    ForecastBaseVO selectByCompanyCode(ForecastQuery query);

    /**
     * 取消预报
     * @param forecastDO
     */
    void cancelState(ForecastDO forecastDO);

    /**
     * 打印标签
     * @param query
     * @return
     */
    String printTag(ForecastQuery query);

    /**
     * 打印交货清单
     * @param query
     * @return
     */
    String printList(ForecastQuery query);

    /**
     * 异步生成pdf
     * @param forecastCode
     */
    void syncPrintTag(String  forecastCode);
}
